import request from "../utils/request";
import type { PushActivityParams } from "@/types/publishEvents";
import type { GetActivityRes } from "@/types/events";

/**
 * 查询活动列表
 * @param {string} page 当前页码
 * @param {string} limit 每页显示条数
 * @param {string} categoryId 分类id
 * @returns
 */
export function deskActivityList(
  page: number,
  limit: number,
  categoryId?: string
) {
  let url = `/api/activity/activity-list/${page}/${limit}`;
  categoryId ? (url += "?/categoryId/" + categoryId) : "";
  return request.get(url);
}

/**
 * 当前最热门活动前10条
 * @returns
 */
export function hotByOrderActivity() {
  return request.get(`/api/activity/activity-hotByOrder`);
}

/**
 * 发布活动
 * @param {object} params 发布竞赛 信息
 * @param {string} params.categoryId 分类id
 * @param {string} params.content 内容详情
 * @param {string} params.cover 图片
 * @param {string} params.description 活动描述
 * @param {object} params.endDate 活动结束时间
 * @param {object} params.enrollEndDate 报名结束时间
 * @param {object} params.enrollStartDate 报名开始时间
 * @param {string} params.id
 * @param {array} params.imgNameList
 * @param {array} params.imgUrlList
 * @param {string} params.isComment 是否允许评论
 * @param {string} params.isDel 逻辑删除表示
 * @param {string} params.isEmail 是否允许提交电子档
 * @param {string} params.isTeam 是否为团队报名
 * @param {string} params.isToll 是否收费
 * @param {string} params.isTop 是否置顶
 * @param {string} params.local 活动地址
 * @param {string} params.organizer 主办方
 * @param {number} params.participationNum 已经参加人数
 * @param {string} params.password 用户密码
 * @param {number} params.personNum 允许参加的活动人数
 * @param {string} params.pushId 发布者id
 * @param {string} params.pushName 发布者姓名
 * @param {object} params.pushTime 发布时间
 * @param {number} params.sort 排序
 * @param {object} params.startDate 活动开始时间
 * @param {string} params.status 活动状态
 * @param {number} params.teamNum 团队最大人数
 * @param {array} params.templateValueList
 * @param {string} params.title 活动标题
 * @param {object} params.toll 收取费用
 * @param {number} params.viewNum 浏览人数
 * @returns
 */
export function pushActivity(params: PushActivityParams) {
  return request.post(`/api/activity/push/activity`, params);
}
/**
 * 根据名称查询分类
 * @param {string} name 参数:分类名称
 * @returns
 */
export function findCategoryChildListByName(name: string) {
  return request.get(`/api/category/findCategoryChildListByName/${name}`);
}

/**
 * 获取参与的活动 status 查询全部默认0
 * @param {string} type type
 * @param {string} status status
 * @returns
 */
export function getActivity(type: number, status: number) {
  return request.get<GetActivityRes>(
    `/api/u-center/message/activity/${type}/${status}`
  );
}

// 响应接口
export interface GetPublishActivityRes {}

/** 
 * 获取发布活动
 * @returns
 */
export function getPublishActivity() {
  return request.get<GetActivityRes>(`/api/u-center/message/publish/activity`);
}

// /api/activity/getActivityInfo/{id}/{type}

export function getEventsDetails(contestId: string) {
  return request.get(`/api/activity/getActivityInfo/${contestId}/1`)
}

/**
 * 根据分类获取活动ist
 */
export function getEventsByCategory(categoryId: string) {
  return request.get(`/api/activity/queryActivityListByCategoryId/${categoryId}`)
}